<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Calico: AprilTags::TagFamily Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Calico
   </div>
   <div id="projectbrief">A visual-inertial calibration library designed for rapid problem construction and debugging.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceAprilTags.html">AprilTags</a></li><li class="navelem"><a class="el" href="classAprilTags_1_1TagFamily.html">TagFamily</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="classAprilTags_1_1TagFamily-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">AprilTags::TagFamily Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Generic class for all tag encoding families.  
 <a href="classAprilTags_1_1TagFamily.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="TagFamily_8h_source.html">TagFamily.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for AprilTags::TagFamily:</div>
<div class="dyncontent">
<div class="center"><img src="classAprilTags_1_1TagFamily__coll__graph.png" border="0" usemap="#aAprilTags_1_1TagFamily_coll__map" alt="Collaboration graph"/></div>
<map name="aAprilTags_1_1TagFamily_coll__map" id="aAprilTags_1_1TagFamily_coll__map">
<area shape="rect" title="Generic class for all tag encoding families." alt="" coords="5,109,148,136"/>
<area shape="rect" href="classAprilTags_1_1TagFamily_1_1TableInitializer.html" title="Initializes the static popCountTable." alt="" coords="5,5,148,47"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily_1_1TableInitializer.html">TableInitializer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the static popCountTable.  <a href="classAprilTags_1_1TagFamily_1_1TableInitializer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a347dddd1c2ea72dd4cc398d86056b6f1"><td class="memItemLeft" align="right" valign="top"><a id="a347dddd1c2ea72dd4cc398d86056b6f1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#a347dddd1c2ea72dd4cc398d86056b6f1">TagFamily</a> (const <a class="el" href="classAprilTags_1_1TagCodes.html">TagCodes</a> &amp;tagCodes, const size_t <a class="el" href="classAprilTags_1_1TagFamily.html#add18a3ccb0b2094f5c8fc033eac69902">blackBorder</a>)</td></tr>
<tr class="memdesc:a347dddd1c2ea72dd4cc398d86056b6f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The codes array is not copied internally and so must not be modified externally. <br /></td></tr>
<tr class="separator:a347dddd1c2ea72dd4cc398d86056b6f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a224096afb0db67e1da689e773eec9123"><td class="memItemLeft" align="right" valign="top"><a id="a224096afb0db67e1da689e773eec9123"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setErrorRecoveryBits</b> (int b)</td></tr>
<tr class="separator:a224096afb0db67e1da689e773eec9123"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0e6f97b8d5e11d39fc255f6c0df1e26"><td class="memItemLeft" align="right" valign="top"><a id="ac0e6f97b8d5e11d39fc255f6c0df1e26"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setErrorRecoveryFraction</b> (float v)</td></tr>
<tr class="separator:ac0e6f97b8d5e11d39fc255f6c0df1e26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7c76606756cc00d32bac0b23a4b4edf"><td class="memItemLeft" align="right" valign="top"><a id="aa7c76606756cc00d32bac0b23a4b4edf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#aa7c76606756cc00d32bac0b23a4b4edf">decode</a> (<a class="el" href="structAprilTags_1_1TagDetection.html">TagDetection</a> &amp;det, unsigned long long rCode) const</td></tr>
<tr class="memdesc:aa7c76606756cc00d32bac0b23a4b4edf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an observed tag with code 'rCode', try to recover the id. <br /></td></tr>
<tr class="separator:aa7c76606756cc00d32bac0b23a4b4edf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfc43754714a53bd823c87475da525d4"><td class="memItemLeft" align="right" valign="top"><a id="acfc43754714a53bd823c87475da525d4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#acfc43754714a53bd823c87475da525d4">printHammingDistances</a> () const</td></tr>
<tr class="memdesc:acfc43754714a53bd823c87475da525d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints the hamming distances of the tag codes. <br /></td></tr>
<tr class="separator:acfc43754714a53bd823c87475da525d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a9cadaaad100d5543fda9fed4a3801d0d"><td class="memItemLeft" align="right" valign="top"><a id="a9cadaaad100d5543fda9fed4a3801d0d"></a>
static unsigned long long&#160;</td><td class="memItemRight" valign="bottom"><b>rotate90</b> (unsigned long long w, int d)</td></tr>
<tr class="separator:a9cadaaad100d5543fda9fed4a3801d0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe7c89b89bb0f06d501d920243f71d82"><td class="memItemLeft" align="right" valign="top"><a id="afe7c89b89bb0f06d501d920243f71d82"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#afe7c89b89bb0f06d501d920243f71d82">hammingDistance</a> (unsigned long long a, unsigned long long b)</td></tr>
<tr class="memdesc:afe7c89b89bb0f06d501d920243f71d82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the hamming distance between two unsigned long longs. <br /></td></tr>
<tr class="separator:afe7c89b89bb0f06d501d920243f71d82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebb14c05a4131d7af7f4907b3c623b2d"><td class="memItemLeft" align="right" valign="top"><a id="aebb14c05a4131d7af7f4907b3c623b2d"></a>
static unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#aebb14c05a4131d7af7f4907b3c623b2d">popCountReal</a> (unsigned long long w)</td></tr>
<tr class="memdesc:aebb14c05a4131d7af7f4907b3c623b2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many bits are set in the unsigned long long? <br /></td></tr>
<tr class="separator:aebb14c05a4131d7af7f4907b3c623b2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbb2c1d5b18be61874b191a1fb77a4bf"><td class="memItemLeft" align="right" valign="top"><a id="abbb2c1d5b18be61874b191a1fb77a4bf"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>popCount</b> (unsigned long long w)</td></tr>
<tr class="separator:abbb2c1d5b18be61874b191a1fb77a4bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:add18a3ccb0b2094f5c8fc033eac69902"><td class="memItemLeft" align="right" valign="top"><a id="add18a3ccb0b2094f5c8fc033eac69902"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#add18a3ccb0b2094f5c8fc033eac69902">blackBorder</a></td></tr>
<tr class="memdesc:add18a3ccb0b2094f5c8fc033eac69902"><td class="mdescLeft">&#160;</td><td class="mdescRight">Numer of pixels wide of the inner black border. <br /></td></tr>
<tr class="separator:add18a3ccb0b2094f5c8fc033eac69902"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad45fd65efdd20e0895e7717d737f2bd4"><td class="memItemLeft" align="right" valign="top"><a id="ad45fd65efdd20e0895e7717d737f2bd4"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#ad45fd65efdd20e0895e7717d737f2bd4">bits</a></td></tr>
<tr class="memdesc:ad45fd65efdd20e0895e7717d737f2bd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of bits in the tag. Must be n^2. <br /></td></tr>
<tr class="separator:ad45fd65efdd20e0895e7717d737f2bd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70c25d3f3802bde5122643490332f8c6"><td class="memItemLeft" align="right" valign="top"><a id="a70c25d3f3802bde5122643490332f8c6"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#a70c25d3f3802bde5122643490332f8c6">dimension</a></td></tr>
<tr class="memdesc:a70c25d3f3802bde5122643490332f8c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dimension of tag. e.g. for 16 bits, dimension=4. Must be sqrt(bits). <br /></td></tr>
<tr class="separator:a70c25d3f3802bde5122643490332f8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c431ef9dd016c283d9d5e5814be652b"><td class="memItemLeft" align="right" valign="top"><a id="a4c431ef9dd016c283d9d5e5814be652b"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#a4c431ef9dd016c283d9d5e5814be652b">minimumHammingDistance</a></td></tr>
<tr class="memdesc:a4c431ef9dd016c283d9d5e5814be652b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum hamming distance between any two codes. <br /></td></tr>
<tr class="separator:a4c431ef9dd016c283d9d5e5814be652b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ea1cce664632233279284c37743b813"><td class="memItemLeft" align="right" valign="top"><a id="a2ea1cce664632233279284c37743b813"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>errorRecoveryBits</b></td></tr>
<tr class="separator:a2ea1cce664632233279284c37743b813"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68483a11d1c70e1d60c6d21fa5ffc392"><td class="memItemLeft" align="right" valign="top"><a id="a68483a11d1c70e1d60c6d21fa5ffc392"></a>
std::vector&lt; unsigned long long &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classAprilTags_1_1TagFamily.html#a68483a11d1c70e1d60c6d21fa5ffc392">codes</a></td></tr>
<tr class="memdesc:a68483a11d1c70e1d60c6d21fa5ffc392"><td class="mdescLeft">&#160;</td><td class="mdescRight">The array of the codes. The id for a code is its index. <br /></td></tr>
<tr class="separator:a68483a11d1c70e1d60c6d21fa5ffc392"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a544e4cd74d55a4920b5ac73fb2434852"><td class="memItemLeft" align="right" valign="top"><a id="a544e4cd74d55a4920b5ac73fb2434852"></a>
static const int&#160;</td><td class="memItemRight" valign="bottom"><b>popCountTableShift</b> = 12</td></tr>
<tr class="separator:a544e4cd74d55a4920b5ac73fb2434852"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac45fccc089013c591aafb6f44b6a7548"><td class="memItemLeft" align="right" valign="top"><a id="ac45fccc089013c591aafb6f44b6a7548"></a>
static const unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>popCountTableSize</b> = 1 &lt;&lt; popCountTableShift</td></tr>
<tr class="separator:ac45fccc089013c591aafb6f44b6a7548"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50c1c51fa390252c1d50c7c795e18f79"><td class="memItemLeft" align="right" valign="top"><a id="a50c1c51fa390252c1d50c7c795e18f79"></a>
static unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>popCountTable</b> [popCountTableSize]</td></tr>
<tr class="separator:a50c1c51fa390252c1d50c7c795e18f79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5842159075d2479924a989983500b1a"><td class="memItemLeft" align="right" valign="top"><a id="ad5842159075d2479924a989983500b1a"></a>
static class <a class="el" href="classAprilTags_1_1TagFamily_1_1TableInitializer.html">AprilTags::TagFamily::TableInitializer</a>&#160;</td><td class="memItemRight" valign="bottom"><b>initializer</b></td></tr>
<tr class="separator:ad5842159075d2479924a989983500b1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Generic class for all tag encoding families. </p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>calico/third_party/apriltags/apriltags/<a class="el" href="TagFamily_8h_source.html">TagFamily.h</a></li>
<li>calico/third_party/apriltags/src/TagFamily.cc</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
